ESP8266该怎么玩!
点击上方“果果小师弟”,选择“置顶/星标公众号”
干货福利,第一时间送达!
学习物联网这一块大家首先想到的是ESP8266,这个模块可以连网就是连接你家中的路由器,也可以作为一个热点来让你的手机连接它,是不是很奇妙。虽然这个东西程序和相关的产品已经很成熟,但是还是有一些入门的小伙伴不知道咋学。如何用一个ESP8266加上STM32单片机做一个小产品呢?这个学习的路线是怎样的呢还有如何入门呢?
我建议1:先单独学习ESP8266模块,搞懂他的AT指令集,通过串口调试助手和网络调试助手单独把这个模块搞明白。2:学习mqtt协议,为啥第二步要学习mqtt协议呢?因为我们esp8266是要连接服务器的,简单地说mqtt就是esp8266与服务器之间的通信协议,这个协议不难,我已经写好了笔记到时候在这个公众号直接发布就可以了。3:就是要学习android studio自己做一个app。既然是物联网控制当然有app了,虽然阿里云还有机智云有直接可以用的app,但是作为一个是电子爱好者不能仅限于云智能,自己写一个app说出去也好装逼啊!本项目带你用32还有esp8266做一个比如温湿度显示,并在手机app上实时。
学习方法:
1.多去各大论坛查资料去B站找相关的视频。
2.学会举一反三,让你点亮一个LED,就要会灭一个led。
3.多动手,程序不是写出来的,是调出来和改出来的。
ESP8266 01S简介
使用AT功能之前,模块内必须有AT的固件,每个模块的生产厂商都会对乐鑫官方的AT固件做一些修改和删减,但是其最核心的AT指令功能都是相同的。我们买的ESP8826模块一般都有刷好的固件,所以不用自己刷固件。
ESP-01S WiFi 模块是一款低功耗高性价比的嵌入式无线网络控制模块。可满足智能电网、楼宇自动化、安防、智能家居、远程医疗等物联网应用的需求。该模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的Tensilica L106 超低功耗 32 位微型 MCU,带有16位精简模式,主频支持80MHz和160MHz,支持RTOS,板载天线。该模块支持完整的TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
(1) 模块供电电压为直流3.3V、电流为500mA以上;
(2) Wi-Fi模块IO最大输出电流为12mA;
(3) Wi-Fi模块NRST管脚低电平有效;EN使能管脚高电平有效;
(4) Wi-Fi模块进入升级模式:GPIO0处于低电平,然后模块复位上电;Wi-Fi模块进入正常工作模式: GPIO0处于高电平,模块复位上电。
(5)Wi-Fi模块的RXD接外部MCU的TXD,Wi-Fi模块的TXD接外部MCU的RXD;
ESP8266刷固件
AT指令控制 ESP8266 模组
总结 AT 指令的构成就是,每条指令要以 AT 开始,后面跟要查询(读)或者要设置(写)的参数,例如查询 WIFI 模式对应的指令为 AT+CWMODE?,设置 WIFI 模式为AT+CWMODE=3。另外要求的回车换行符结尾是说要在待发送的数据后面追加\r\n,即十六进制的 0x0D 0x0A。注意: 在使用串口调试助手发送AT 指令时,只需要在待发送指令后面加回车即可,大家可以勾选“ 按十六进制发送”,观察数据后面是否追加了 0x0D 0x0A。
1. 测试模块是否正常
该指令通常在开机后查询模块是否正常启动,如果回复 OK 则表示为正常启动。
2. 开启/关闭回显
3. 设置AP模式及AP参数
1.首先发送AT+CWMODE?查询模块当前处于哪一种模式,下图可以知道AT+CWMODE=2就是热点模式。
2.然后我们发送AT+CWMODE=2,让模块处于热点模式下,同时我们的电脑上也会显示热点名称。
3.我们现在自定义设置我们ESP8266的热点名和密码,来看看我们电脑能不能连接我们所设置的好的ESP8266模块。
1设置WIFI模式为AP模式
2.设置AP热点属性
AT+CWSAP=AT+CWSAP_DEF="ESP8266-XSD","12345678",5,3
其含义为:热点名为ESP8266-XSD,密码为12345678,使用通道5,加密方式为 WPA2_PSK,这里的通道对应的就是不同的射频频率,如果同一空间内存在相同通道的 WIFI 信号,将会产生干扰,影响上网质量,因此可以设置通道来避免这种干扰,常用的通道有1 6 11,因为这三个通道互不产生干扰。设置效果如下图:
连接数量可以限制 Station 设备的接入数量,广播或者不广播 SSID 就是指是否隐藏热点名,使热点更加安全。另外AT+CWSAP=AT+CWSAP_DEF表示设置的参数会存储的 flash,还有另外一个类似指令 AT+CWSAP=AT+CWSAP_ CUR,该条指令表示设置的参数重启后失效,即不保存到 flash 中。其他的 AT 指令也有类似的后缀。
4. 设置为Station 模式
该模式是平时应用最多的模式,因为物联网设备需要连接到家中路由才可以接入外网,此时设备就作为 Station 连接到 AP 热点。设置 Station 并连接 AP 流程如下:
1.设置 WIFI 模式为 Station
2.连接到家中路由器AT+CWJAP="liuyao","liuyao1001"
现在我们的ESP8266已经与家中的路由器连接上了,现在我们如果想获取连接的这个ESP8266的IP可以使用AT+CIPSTA?指令,返回的是路由器分配给 ESP8266 的局域网IP以及网关地址和子网掩码 。
5. 使用TCP实现局域网内的设备通信
建立TCP连接(AT+CIPSTART)
1.设置WIFI 模式为 Station:AT+CWMODE=1
2.连家中路由器:AT+CWJAP="liuyao","liuyao1001"
3.TCP :AT+CIPSTART="TCP","192.168.0.103",8080
4.提示发送数据长度为14: AT+CIPSEND=14
5.串口调试助手发送:I m TCP Client
6.网络调试助手发送:I m TCP Server
这一步很多人可能很懵,不知道为啥要这样做,你这个搞的串口调试助手还有网络调试助手还有啥TCP Server到底是啥意思啊?
所以说我们一定要在串口调试助手上把相关的数据调通了,把原理过程搞懂了之后我们再去搞单片机程序,再去搭建你的服务器而不是用网络调试助手代替了。怎么样现在明白了吧!
开启透传传输(AT+CIPMODE=1)
1.设置WIFI模式为 Station:AT+CWMODE=1
2.连家中路由器:AT+CWJAP="liuyao","liuyao1001"
3.TCP:AT+CIPSTART="TCP","192.168.0.103",8080
4.开启透传模式:AT+CIPMODE=1
5.开始透传发送:AT+CIPSEND
6.串口调试助手发送:hello I m TCP Client!
7.网络调试助手发送:hello I m TCP Server!
如果想要退出透传发送模式,先发送+++(0x2B 0x2B 0x2B),注意没有换行符,接着使用AT+CIPMODE=0指令退出透传模式,恢复到默认传输模式。如果不退出透传模式,那么在透传模式下就不能发送AT指令了,它会默认为字符串发送。
6.使用SmartConfig为设备配网
智能配网需要三个设备:家中的路由器、WIFI模块、手机。模块处于station模式,手机连接好家中的wifi。具体的这个工作的原理是:我们需要将wifi配置为station模式。因为默认的是ap模式,然后要保证手机连接到家中的路由器热点。
知道了ESP8266模块如何用了之后,接下来我们就用STM32和ESP8266来实现与服务器的之间的数据收发,具体操作我们下一篇再说!
END
如果觉得文章对你有帮助,欢迎转发、点赞、分享给你的朋友,感谢您的支持!